//该文件用于创建vuex中最核心的store

import Vue from 'vue'
//引入Vuex
import Vuex from 'vuex'

//应用(使用)vuex插件
Vue.use(Vuex)

//准备actions。用于响应组件中的动作
const actions = {
    addOddFun(context,value){
        // if(context.state.sum % 2){
        //     context.commit('addFun',value)
        // }
        console.log("处理一些事情--addOdd")
        context.dispatch('demo1',value)
    },
    addWaitFun(context,value){
        setTimeout(()=>{
            context.commit('AFun',value)
        },500)
    },
    demo1(context,value){
        console.log("处理一些事情--demo1")
        context.dispatch('demo2',value)
    },
    demo2(context,value){
        console.log("处理一些事情--demo2")
        if(context.state.sum % 2){
            context.commit('AFun',value)
        }
    }
};
//准备mutations。用于操作数据(state)
const mutations = {
    AFun(state,value){
        // console.log('mutations中的addFun',state,value)
        state.sum += value
    },
    SFun(state,value){
        state.sum -= value
    },
    ADDPerson(state,value){
        state.personList.unshift(value)
    }
};
//准备state。用于存储数据
const state = {
    sum:0,//当前的和
    school:"MEO",
    personList:[
        {id:'001',name:'aaa'},
        {id:'002',name:'bbb'}
    ]
}
// getters。用于将state中的数据进行加工
const getters = {
    bigSum(state){
        return state.sum*10
    }
}

/*
//创建store
const store = new Vuex.Store({
    actions,
    mutations,
    state
})

//导出(暴露)store
export default store
 */
export default new Vuex.Store({
    actions,
    mutations,
    state,
    getters
})